home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Communication / Conference / Source / Controller.h < prev    next >
Text File  |  1993-01-19  |  4KB  |  141 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import <objc/Object.h>
  5. #import <objc/Storage.h>
  6.  
  7. #import <appkit/appkit.h>
  8.  
  9. #import "ConferenceSpeaker.h"
  10. #import "ConferenceListener.h"
  11.  
  12. #define STRING_LENGTH 50
  13. #define NETWORKENTRYPERIOD 1.0
  14. #define ALARMENTRYPERIOD 0.1
  15. #define MAXALARMS 5
  16.  
  17. // We assume port_t is int, or rather, or length int.
  18. #define MEMBERSTORAGEDESCRIPTION "{[STRING_LENGTHc][STRING_LENGTHc]i}"
  19. #define MACHINESTORAGEDESCRIPTION "[STRINGLENGTHc]"
  20.  
  21. #define APPNAME "SomeRandomStringLikeThis"
  22.  
  23. typedef struct {
  24.     char user[STRING_LENGTH];
  25.     char username[STRING_LENGTH];
  26.     char machine[STRING_LENGTH];
  27.     port_t port;
  28. } MemberRecord;
  29.  
  30. @interface Controller:Object
  31. {
  32.     //  Objects on the interaction window.
  33.     id    inputText;
  34.     id    logText;
  35.     
  36.     //  Objects on the participants window.
  37.     id  memberBrowser;
  38.  
  39.     //  Objects on the Preferences panel.
  40.     id  loginSwitch;
  41.     id  machineSwitch;
  42.     id  realSwitch;
  43.     id  machineBrowser;
  44.     id  useConferenceSwitch;
  45.     id  useNetworkSwitch;
  46.     id  noisyAlertSwitch;
  47.     id  visualAlertSwitch;
  48.     id  activateOnAlertSwitch;
  49.     id  soundFileTextField;
  50.     
  51.     //  Outlets connected in the nib, that aren't controlled from the nib.
  52.     id  coverButton;
  53.     id  addMachinePanel;
  54.     id  addMachineField;
  55.     
  56.     //  Outlets used internally (not connected to the nib).
  57.     id  alertSound;
  58.     id  alertWindow;
  59.     id  memberStore;
  60.     id  speak;
  61.     id  listen;
  62.     
  63.     //  Non-objects.
  64.     char homedir[STRING_LENGTH];
  65.     MemberRecord me;
  66.     DPSTimedEntry netTimedEntry;
  67.     DPSTimedEntry alarmTimedEntry;
  68.     int numberAlarms;
  69. }
  70.  
  71. // Functions used internally.
  72. void killCr(char *c, int len);
  73. int membercmp(MemberRecord *r1, MemberRecord *r2);
  74. void copymember(MemberRecord *r1, MemberRecord *r2);
  75.  
  76. // Dummy functions used for timed entry.
  77. DPSTimedEntryProc networkEntryHandler(DPSTimedEntry num,
  78.                         double now, 
  79.                         char *userData);
  80. DPSTimedEntryProc alarmEntryHandler(DPSTimedEntry num,
  81.                         double now, 
  82.                         char *userData);
  83.  
  84. // Object initializer.
  85. - init;
  86.  
  87. // Actions called by nib connection.
  88. - addMachineQuit:sender;
  89. - addMachineOk:sender;
  90. - fetchSound:sender;
  91. - quit:sender;
  92. - changePref:sender;
  93. - addMachine:sender;
  94. - removeMachine:sender;
  95. - connectMember:sender;
  96. - disconnectMember:sender;
  97. - connectMachine:sender;
  98. - disconnectMachine:sender;
  99. - selectAllMembers:sender;
  100. - yeahRight:sender;
  101.  
  102. // Actions called from within Controller.
  103. - doConferenceFile:sender;
  104. - doNetwork:sender;
  105. - setDefaults:sender;
  106. - getDefaults:sender;
  107.  
  108. // I/O handlers for Text.
  109. - input:sender;
  110. - doOutput:(char *)msg withSender:(MemberRecord *)owner andBold:(BOOL)bold;
  111.  
  112. // Alarm response/Timed Entry methods.
  113. - handleAlarm;
  114. - doAlarmTimedEntry:sender;
  115. - doNetworkTimedEntry:sender;
  116.  
  117. // Miscellaneous data-checking and retrieval methods.
  118. - (BOOL)gotMemberWithMachine:(const char *)machine;
  119. - (BOOL)gotMember:(MemberRecord *)mem;
  120. - getBrowserString:(char *)str fromMember:(MemberRecord *)mem;
  121.  
  122. // ".Conference" file handling methods.
  123. - addMachineToConferenceFile:(const char *)machine;
  124. - removeMachineFromConferenceFile:(const char *)machine;
  125.  
  126. // application delegated methods
  127. - appDidInit:sender;
  128.  
  129. // browser delegated methods
  130. -(int)browser:sender fillMatrix:matrix inColumn:(int)column;
  131.  
  132. // text delegated methods
  133. - textDidEnd:sender endChar:(unsigned short)whyEnd;
  134.  
  135. // speaker/listener delegated methods
  136. - (int)helloIAm:(char *)fr length:(int)len;
  137. - (int)goodByeIAmLeaving:(char *)fr length:(int)len;
  138. - (int)sendMessage:(char *)msg from:(char *)fr length:(int)len;
  139.  
  140. @end
  141.